package com.xydtech.busiflw.service.impl;

import com.xydtech.busiflw.domain.BusiflInstStep;
import com.xydtech.busiflw.mapper.BusiflInstStepMapper;
import com.xydtech.busiflw.service.IBusiflInstStepService;
import com.xydtech.common.core.text.Convert;
import com.xydtech.common.utils.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 业务流转步骤Service业务层处理
 *
 * @author JHON
 * @date 2021-06-11
 */
@Service
public class BusiflInstStepServiceImpl implements IBusiflInstStepService {
    @Autowired
    private BusiflInstStepMapper busiflInstStepMapper;

    /**
     * 查询业务流转步骤
     *
     * @param tracestepId 业务流转步骤ID
     * @return 业务流转步骤
     */
    @Override
    public BusiflInstStep selectBusiflInstStepById(Long tracestepId) {
        return busiflInstStepMapper.selectBusiflInstStepById(tracestepId);
    }

    /**
     * 查询业务流转步骤列表
     *
     * @param busiflInstStep 业务流转步骤
     * @return 业务流转步骤
     */
    @Override
    public List<BusiflInstStep> selectBusiflInstStepList(BusiflInstStep busiflInstStep) {
        return busiflInstStepMapper.selectBusiflInstStepList(busiflInstStep);
    }

    /**
     * 查询业务流转审批列表
     *
     * @param busiflInstStep 业务流转步骤
     * @return 业务流转步骤集合
     */
    @Override
    public List<BusiflInstStep> selectBusiflInstApproveList(BusiflInstStep busiflInstStep) {
        return busiflInstStepMapper.selectBusiflInstApproveList(busiflInstStep);
    }

    /**
     * 新增业务流转步骤
     *
     * @param busiflInstStep 业务流转步骤
     * @return 结果
     */
    @Override
    public int insertBusiflInstStep(BusiflInstStep busiflInstStep) {
        busiflInstStep.setCreateTime(DateUtils.getNowDate());
        return busiflInstStepMapper.insertBusiflInstStep(busiflInstStep);
    }

    /**
     * 修改业务流转步骤
     *
     * @param busiflInstStep 业务流转步骤
     * @return 结果
     */
    @Override
    public int updateBusiflInstStep(BusiflInstStep busiflInstStep) {
        return busiflInstStepMapper.updateBusiflInstStep(busiflInstStep);
    }

    /**
     * 删除业务流转步骤对象
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    @Override
    public int deleteBusiflInstStepByIds(String ids) {
        return busiflInstStepMapper.deleteBusiflInstStepByIds(Convert.toStrArray(ids));
    }

    /**
     * 删除业务流转步骤信息
     *
     * @param tracestepId 业务流转步骤ID
     * @return 结果
     */
    @Override
    public int deleteBusiflInstStepById(Long tracestepId) {
        return busiflInstStepMapper.deleteBusiflInstStepById(tracestepId);
    }
}
